package com.cskaoyan._10final._04variable._03member;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/10 11:11
 **/
/*

final修饰成员变量
    成员常量: 不能使用默认值, 必须进行初始化操作, 必须赋值
    语法:final 数据类型 成员变量名

    成员变量的赋值手段:
        1.显式赋值
        2.构造代码块
        3.构造方法赋值
        赋值方式必须是3种当中的其中一种,但是只能选择一个
        只能赋值一次
    成员常量是不是唯一的?不是真正意义上的唯一.
 */
public class Demo {
    public static void main(String[] args) {
        Student student = new Student(10);

        // Student student1 = new Student();

        Student student1 = new Student(20);
    }
}

class Student{
    // 定义成员变量
    // Variable 'name' might not have been initialized
    final String name = "zs";
    final int age;
    final int a;

    public Student(int a) {
        this.a = a;
    }

    {
        // 构造代码块赋值
        age = 20;
        // Cannot assign a value to final variable 'name'
        // name = "ls";

    }

    // 此时没有默认无参构造
    // 新增无参构造方法

    //public Student() {
    //}
}